﻿IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[proc_ReporteConcursantes]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
    DROP PROCEDURE [proc_ReporteConcursantes];
GO

CREATE PROCEDURE [proc_ReporteConcursantes]
	@promocionId INT,
	@soloFavorecidos BIT,
	@filtroNombre VARCHAR(50),
	@filtroCedula VARCHAR(20)
AS
BEGIN
	SET NOCOUNT ON

	SELECT	o.Nombre PromocionNombre, o.FechaInicio, o.FechaFinal,
			p.Nombre, p.Cedula, p.Telefono, p.Empresa,	
			COUNT(a.Id) NumAcciones, dbo.AccionesGanadoras(@promocionId, p.Id) Ganadoras
	FROM Participante p
	INNER JOIN Accion a ON a.ParticipanteId = p.Id
	INNER JOIN Promocion o ON a.PromocionId = o.Id
	WHERE	o.Id = @promocionId
		AND	p.Nombre LIKE '%' + ISNULL(@filtroNombre, p.Nombre) + '%'
		AND	p.Cedula = ISNULL(@filtroCedula, p.Cedula)
		AND dbo.AccionesGanadoras(@promocionId, p.Id) >= @soloFavorecidos
	GROUP BY o.Nombre, o.FechaInicio, o.FechaFinal, p.Nombre, p.Cedula, p.Telefono, p.Empresa, p.Id
	ORDER BY p.Nombre
	
END
GO
  